/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package libraryce;

import eeep.controle.EmprestimoControle;
import eeep.controle.EnderecoControle;
import eeep.controle.LivroControle;
import eeep.controle.PessoaControle;
import eeep.controle.TurmaControle;
import eeep.dao.EnderecoDAO;
import eeep.entidades.Emprestimo;
import eeep.entidades.Endereco;
import eeep.entidades.Livro;
import eeep.entidades.Pessoa;
import eeep.entidades.Turma;
import eeep.entidades.Usuario;
import eeep.excecoes.ENDJCException;
import eeep.excecoes.ENDNEException;
import eeep.excecoes.LJCException;
import eeep.excecoes.LJEException;
import eeep.excecoes.LJRException;
import eeep.excecoes.LNEException;
import eeep.excecoes.PJCException;
import eeep.excecoes.TJCException;
import java.util.Date;


/**
 *
 * @author Junior
 */
public class LibraryCe {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws ENDJCException, ENDNEException, TJCException, PJCException, LJEException, LJRException {
        // TODO code application logic here
        
        LivroControle controle = new LivroControle();
        Date origem = new Date();
        Livro aux = new Livro(null, null, null, null, null, 0, null, null, null, true);
        aux.setGenero("Besteiras");
        aux.setNome("Harry Potter");
        aux.setCodigo("12345");
        aux.setAutor("Alan");
        aux.setAssunto("Só pra não passar em Branco");
        aux.setEditora("Abril");
        aux.setOrigem(origem);
        aux.setData(origem);
//        try {
//            controle.salvarLivro(aux);
//        } catch (LJCException ex) {
//            System.out.println(ex.getMessage());
//        }
//        try {
//            livro = controle.buscarLivroPorCodigo("789");
//            System.out.println("Nome :"+livro.getNome()+"\nCodigo :"+livro.getCodigo());
//        } catch (LNEException ex) {
//            System.out.println(ex.getMessage());
//        }
//        try {
//            controle.removerLivro("321");
//            System.out.println("Livro Removido");
//        } catch (LNEException ex) {
//            System.out.println(ex.getMessage());
//        }
        Endereco endereco = new Endereco();
        Pessoa pessoa = new Pessoa();
        endereco.setBairro("Pedreira");
        endereco.setCidade("Pentecoste");
        endereco.setNumero(200);
        endereco.setRua("vicente feijó de melo");
        Turma turma = new Turma();
        turma.setNome("Informática");
        turma.setAno(2014);
        turma.setId(1);
        TurmaControle tControle = new TurmaControle();
        EnderecoControle eControle = new EnderecoControle();
        PessoaControle pControle = new PessoaControle();
        EnderecoDAO edao = new EnderecoDAO();
//        tControle.salvarTurma(turma);
//        eControle.salvarEndereco(endereco);
        Endereco eaux = new Endereco();
        edao.buscarEndereco(endereco);
        if(edao.buscarEndereco(endereco)!=null){
            endereco = edao.buscarEndereco(endereco);
        }

        Usuario usuario = new Usuario();
        pessoa.setEndereco(endereco);
        pessoa.setEmail("jrfernandessi3@gmail.com");
        pessoa.setNome("Junior");
        pessoa.setTurma(turma);
        usuario.setId(1);;
        pessoa.setUsuario(usuario);
//        pControle.salvarPessoa(pessoa);
        pessoa.setId(2);
        Livro livro = new Livro();
        livro.setId(1);
        livro.setCodigo("12345");
        pControle.salvarPessoa(pessoa);
        Emprestimo emprestimo = new Emprestimo();
        emprestimo.setLivro(livro);
        emprestimo.setPessoa(pessoa);
        Date dataInicial = new Date();
        Date dataDevolucao;
        Date dataFinal = new Date();
        dataDevolucao = new Date();
        dataDevolucao.setDate(dataInicial.getDate()+7);
        
        
        emprestimo.setDataInicio(dataInicial);
        emprestimo.setDataDevolucao(dataDevolucao);
        emprestimo.setDataFinal(dataFinal);
        EmprestimoControle emControle = new EmprestimoControle();
        emControle.DevolverLivro(emprestimo);
        emControle.EmprestarLivro(emprestimo);
        Date data = new Date();
        System.out.println(dataInicial);
        System.out.println(data);
        System.out.println(dataDevolucao);
        emControle.reservarLivro(emprestimo);

    }

}
